import { defineStore } from 'pinia'
import { ref } from 'vue'

export const useUserStore = defineStore(
  'user',
  () => {
    // 状态
    const token = ref('')
    const isLogin = ref(false)
    const userRole = ref('')

    // 设置token和登录状态
    function setToken(newToken: string, role: string) {
      token.value = newToken
      isLogin.value = true
      userRole.value = role
    }

    // 清除token和登录状态
    function clearToken() {
      token.value = ''
      isLogin.value = false
      userRole.value = ''
    }
    // 登录方法
    function login(username: string, password: string) {
      // 这里模拟登录，实际项目中应该调用API
      if (username === 'admin' && password === '123456') {
        // 生成一个假的token
        const fakeToken = `user_${username}_${Date.now()}`
        setToken(fakeToken, 'admin')
        return true
      } else if (username === 'visitor' && password === '123456') {
        const fakeToken = `user_${username}_${Date.now()}`
        setToken(fakeToken, 'visitor')
        return true
      }
      return false
    }

    // 登出方法
    function logout() {
      clearToken()
    }

    return {
      token,
      isLogin,
      userRole,
      login,
      logout,
      setToken,
      clearToken
    }
  },
  {
    persist: true // 启用状态持久化
  }
)
